在高有效性的系統中, 我們都知道要監控與警示, 要如何知道出問題, 靠的是 Watch Dog 的功能, 也就是 Heart Beat 與 Santity Test, 還有在 Load Balance 負載均衡中, 要去確認系統是否正常運作, 用的功能也是 Watch Dog, 在 Fault Tolerance 中, 當系統出問題時, 通常會做一個 Pass Through 或 Levage Up 的動作, 用的也是 Watch Dog, 這個 Watch Dog 看門狗, 在 High Availbility 中, 扮演很重要的角色.
甚麼是 Watch Dog, 就是一隻程式或一個系統, 去到一個或各個系統去巡邏, 看是否出問題, 而當出問題時, 將會啟動一些備援機制, 或者是被一些系統的 Disable, 或相對應的行為, 這就是 Watch Dog 系統, 但當這看門狗系統是做在自己互相備援的機制, 通常是稱為 Heart Beat, 也就是心跳同步, 事實上也是 Watch Dog 的一種.
當系統出問題時, 通常會有幾個對應的工作要做:
這些都是當 Watch Dog 在做 Heart Beat 或 Sanity Test 失敗時該做的事, 而這些 Sanity Test 是有可能那些呢?
當然這個 Watch Dog 看門狗可以說是系統很重要的一環, 在某方面有是須要互相備援的, 或者是兩個各自獨自運作, 不然就是也要有一個基本的 Alert 系統去監控這個 Watch Dog.
要檢查的東西太多了, 會出問題的東西也太多了, Watch Dog 到最後因為效率的考量最後也可能會不只一隻, 也會面臨之前在 Monitor 與 Alert 系統所說的, 會不會監控本身造成系統自己負荷過高的問題, 但通常也會建議這種系統最好還是做在既有的 Production 流程外面的機器會比較安全一些.
事實上很多系統本身就有自己做 Watch Dog, 或提供相關的 Library 寫作, 很多東西都不用自己刻, 甚至有時幾個關鍵點用 TCP 外, 其他也可以用 UDP 來去實作, 尤其當頻率較為頻繁的時候, 在某些時候, 並不是當 Watch Dog 都是要去發現 Critical 致命的問題, 有時只是一些可能出問題就要放進 Watch Dog 才對.
這篇的 Watch Dog 是否有讓大家多了解這件事在 HA 的重要性吧?